// Copyright (c) Microsoft Corporation.  All rights reserved.
#pragma once


class CSideShowServiceTypeEventSource;

interface IWSDDeviceHost;

//------------------------------------------------------------------------------
// CEventSourceNotificationUtility
//      Utility class for sending button clicking notification to DPWS client
//------------------------------------------------------------------------------
class CEventSourceNotificationUtility
{
private:
    CEventSourceNotificationUtility(void);
    ~CEventSourceNotificationUtility(void);

public:
    static CEventSourceNotificationUtility* GetInstance();
    void DestroyInstance();

public:
    void Initialize(IWSDDeviceHost* );
    
public:
    HRESULT SideShowButtonPressedEvent(const CString& csButtonID, const CString& csClientID);

    // for singleton pattern
private:
    static CEventSourceNotificationUtility* m_pInstance;

    // DPWS event source instance, from wsdcodegen tool
private:
    CSideShowServiceTypeEventSource* m_pSideShowServiceEventSource;

    BOOL m_bInitialized;
};
